; Produced by NeoJasminVisitor (tinapoc)
; http://tinapoc.sourceforge.net
; The original JasminVisitor is part of the BCEL
; http://jakarta.apache.org/bcel/
; Mon Oct 10 01:26:24 CEST 2011

.bytecode 50.0
.source includecore.ml
.class public final ocaml/compilers/Includecore
.super java/lang/Object




.method public static fun_596(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 7
    .limit locals 5
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label0 to Label1
    .var 1 is arg1 Lfr/x9c/cadmium/kernel/Value; from Label0 to Label1
    .var 2 is arg2 Lfr/x9c/cadmium/kernel/Value; from Label0 to Label1
    .var 3 is arg3 Lfr/x9c/cadmium/kernel/Value; from Label0 to Label1

    
    Label0:
    aload_0
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_3
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    getstatic fr.x9c.cadmium.kernel.Value.ONE Lfr/x9c/cadmium/kernel/Value;
    aload_1
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_4
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_5
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Ctype/equal_1792(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;

    Label1:
    areturn

    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method



.method public static fun_579(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 5
    .limit locals 10
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label71 to Label72
    .var 1 is arg1 Lfr/x9c/cadmium/kernel/Value; from Label71 to Label72
    .var 2 is arg2 Lfr/x9c/cadmium/kernel/Value; from Label71 to Label72

    
    Label71:
    aload_1
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 4
    aload_0
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    aload 4
    invokestatic ocaml/compilers/Btype/row_field_repr_aux_237(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    astore 4
    aload_1
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 5
    aload_0
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    aload 5
    invokestatic ocaml/compilers/Btype/row_field_repr_aux_237(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    astore 5
    aload 4
    astore 6
    aload 6
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label0
    goto Label1

    Label0:
    aload 6
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    invokevirtual fr/x9c/cadmium/kernel/Block/getTag()I
    tableswitch 0 1
            Label2
            Label3
            default: Label4

    Label3:
    aload 5
    astore 7
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label5
    goto Label6

    Label2:
    aload 4
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 7
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label7
    goto Label8

    Label4:
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;

    Label19:
    areturn

    Label8:
    goto Label9

    Label7:
    aload 5
    astore 8
    aload 8
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label10
    goto Label11

    Label10:
    aload 8
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    invokevirtual fr/x9c/cadmium/kernel/Block/getTag()I
    tableswitch 0 1
            Label12
            Label13
            default: Label14

    Label13:
    aload 5
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/notEqualValues(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Z
    ifeq Label15
    goto Label16

    Label12:
    aload 5
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label17
    goto Label18

    Label14:
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;

    Label21:
    goto Label19

    Label18:
    goto Label11

    Label17:
    getstatic fr.x9c.cadmium.kernel.Value.ONE Lfr/x9c/cadmium/kernel/Value;
    goto Label21

    Label11:
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    goto Label19

    Label16:
    aload 5
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label23
    goto Label24

    Label15:
    goto Label11

    Label24:
    goto Label11

    Label23:
    goto Label17

    Label9:
    aload 5
    astore 8
    aload 8
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label28
    goto Label11

    Label28:
    aload 8
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    invokevirtual fr/x9c/cadmium/kernel/Block/getTag()I
    tableswitch 0 1
            Label30
            Label31
            default: Label32

    Label31:
    aload 5
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/notEqualValues(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Z
    ifeq Label33
    goto Label34

    Label30:
    aload 5
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 9
    aload 9
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label35
    goto Label36

    Label32:
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;

    Label40:
    goto Label21

    Label36:
    aload 9
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    goto Label38

    Label35:
    goto Label11

    Label38:
    astore 8
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload 8
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    swap
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    swap
    iconst_0
    swap
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;
    pop
    getstatic fr.x9c.cadmium.kernel.Value.ONE Lfr/x9c/cadmium/kernel/Value;
    goto Label40

    Label34:
    goto Label11

    Label33:
    aload 5
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 9
    aload 9
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label42
    aload 9
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label43
    goto Label44

    Label42:
    goto Label11

    Label44:
    goto Label11

    Label43:
    aload 9
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    goto Label38

    Label6:
    goto Label11

    Label5:
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    invokevirtual fr/x9c/cadmium/kernel/Block/getTag()I
    tableswitch 0 1
            Label49
            Label50
            default: Label51

    Label50:
    aload 5
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 8
    aload 4
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 9
    aload_0
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    aload 9
    invokestatic ocaml/stdlib/List/length_aux_58(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    aload_0
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    aload 8
    invokestatic ocaml/stdlib/List/length_aux_58(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/equalValues(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Z
    ifeq Label52
    goto Label53

    Label49:
    goto Label11

    Label51:
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;

    Label61:
    goto Label19

    Label53:
    aload_0
    aload 4
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload 5
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/primitives/stdlib/Compare/caml_equal(Lfr/x9c/cadmium/kernel/CodeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label56
    goto Label57

    Label52:
    goto Label11

    Label57:
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_0
    aload_0
    aload 9
    aload 8
    invokestatic ocaml/stdlib/List/combine_254(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/stdlib/Pervasives/@_167(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    swap
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    swap
    iconst_0
    swap
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;
    pop
    getstatic fr.x9c.cadmium.kernel.Value.ONE Lfr/x9c/cadmium/kernel/Value;
    goto Label59

    Label56:
    goto Label11

    Label59:
    goto Label61

    Label1:
    aload 5
    astore 7
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label62
    goto Label63

    Label62:
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    invokevirtual fr/x9c/cadmium/kernel/Block/getTag()I
    tableswitch 0 1
            Label64
            Label65
            default: Label66

    Label65:
    goto Label63

    Label64:
    goto Label11

    Label66:
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;

    Label70:
    goto Label19

    Label63:
    getstatic fr.x9c.cadmium.kernel.Value.ONE Lfr/x9c/cadmium/kernel/Value;

    Label72:
    goto Label70

    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method



.method public static fun_576(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 3
    .limit locals 5
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label8 to Label9
    .var 1 is arg1 Lfr/x9c/cadmium/kernel/Value; from Label8 to Label9

    
    Label8:
    aload_1
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore_3
    aload_0
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    aload_3
    invokestatic ocaml/compilers/Btype/row_field_repr_aux_237(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    astore_3
    aload_3
    astore 4
    aload 4
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label0
    goto Label1

    Label0:
    aload 4
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    invokevirtual fr/x9c/cadmium/kernel/Block/getTag()I
    tableswitch 0 1
            Label2
            Label3
            default: Label4

    Label3:
    goto Label1

    Label2:
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    goto Label6

    Label4:
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;

    Label6:
    areturn

    Label1:
    getstatic fr.x9c.cadmium.kernel.Value.ONE Lfr/x9c/cadmium/kernel/Value;

    Label9:
    goto Label6

    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method



.method public static fun_573(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 3
    .limit locals 3
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label0 to Label1
    .var 1 is arg1 Lfr/x9c/cadmium/kernel/Value; from Label0 to Label1

    
    Label0:
    aload_1
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_1
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_4
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;

    Label1:
    areturn

    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method



.method public static check_super_392(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 7
    .limit locals 7
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label10 to Label11
    .var 1 is arg1 Lfr/x9c/cadmium/kernel/Value; from Label10 to Label11
    .var 2 is arg2 Lfr/x9c/cadmium/kernel/Value; from Label10 to Label11

    
    Label10:
    aload_0
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    getstatic fr.x9c.cadmium.kernel.Value.ONE Lfr/x9c/cadmium/kernel/Value;
    aload_1
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_3
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_4
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_5
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Ctype/equal_1792(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifne Label0
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    bipush 6
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/equalValues(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Z
    ifeq Label1
    goto Label2

    Label0:
    iconst_1

    Label4:
    invokestatic fr/x9c/cadmium/kernel/Value/createFromLong(I)Lfr/x9c/cadmium/kernel/Value;
    areturn

    Label2:
    aload_0
    aload_0
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_0
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_1
    invokestatic ocaml/compilers/Ctype/expand_head_1000(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Ctype/try_expand_once_opt_1005(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    invokestatic ocaml/compilers/Includecore/check_super_392(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;

    Label17:
    goto Label3

    Label1:
    iconst_0

    Label7:
    goto Label4

    Label18:
    aload_0
    invokevirtual fr/x9c/cadmium/kernel/Fail$Exception/asValue(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;)Lfr/x9c/cadmium/kernel/Value;
    astore 6
    aload 6
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_0
    ldc_w "Ctype"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getGlobal(Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_3
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/equalValues(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Z
    ifeq Label5
    goto Label6

    Label3:
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    goto Label7

    Label6:
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    goto Label3

    Label5:
    aload 6
    invokestatic fr/x9c/cadmium/kernel/Fail/raise(Lfr/x9c/cadmium/kernel/Value;)V
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;

    Label11:
    goto Label3

.catch fr/x9c/cadmium/kernel/Fail$Exception from Label2 to Label17 using Label18
    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method



.method public static fun_603(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 2
    .limit locals 4
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label11 to Label9
    .var 1 is arg1 Lfr/x9c/cadmium/kernel/Value; from Label11 to Label9
    .var 2 is arg2 Lfr/x9c/cadmium/kernel/Value; from Label11 to Label9

    
    Label11:
    aload_1
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label0
    iconst_0
    goto Label1

    Label0:
    iconst_1

    Label1:
    ifne Label2
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    goto Label3

    Label2:
    iconst_1

    Label3:
    ifeq Label4
    aload_1
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label5
    goto Label6

    Label4:
    iconst_0

    Label10:
    invokestatic fr/x9c/cadmium/kernel/Value/createFromLong(I)Lfr/x9c/cadmium/kernel/Value;
    areturn

    Label6:
    iconst_0
    goto Label7

    Label5:
    iconst_1

    Label7:
    ifne Label8
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    goto Label9

    Label8:
    iconst_1

    Label9:
    goto Label10

    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method



.method public static fun_599(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 7
    .limit locals 5
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label5 to Label3
    .var 1 is arg1 Lfr/x9c/cadmium/kernel/Value; from Label5 to Label3
    .var 2 is arg2 Lfr/x9c/cadmium/kernel/Value; from Label5 to Label3
    .var 3 is arg3 Lfr/x9c/cadmium/kernel/Value; from Label5 to Label3

    
    Label5:
    aload_0
    aload_1
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/primitives/stdlib/Str/caml_string_equal(Lfr/x9c/cadmium/kernel/CodeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label0
    aload_0
    aload_1
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/primitives/stdlib/Compare/caml_equal(Lfr/x9c/cadmium/kernel/CodeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label1
    goto Label2

    Label0:
    iconst_0

    Label4:
    invokestatic fr/x9c/cadmium/kernel/Value/createFromLong(I)Lfr/x9c/cadmium/kernel/Value;
    areturn

    Label2:
    aload_0
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_3
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    getstatic fr.x9c.cadmium.kernel.Value.ONE Lfr/x9c/cadmium/kernel/Value;
    aload_1
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_4
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_5
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Ctype/equal_1792(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    goto Label3

    Label1:
    iconst_0

    Label3:
    goto Label4

    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method



.method public static fun_590(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 7
    .limit locals 5
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label2 to Label3
    .var 1 is arg1 Lfr/x9c/cadmium/kernel/Value; from Label2 to Label3
    .var 2 is arg2 Lfr/x9c/cadmium/kernel/Value; from Label2 to Label3
    .var 3 is arg3 Lfr/x9c/cadmium/kernel/Value; from Label2 to Label3

    
    Label2:
    aload_0
    aload_1
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/primitives/stdlib/Str/caml_string_equal(Lfr/x9c/cadmium/kernel/CodeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label0
    aload_0
    bipush 6
    invokestatic fr/x9c/cadmium/kernel/Block/createClosure(I)Lfr/x9c/cadmium/kernel/Block;
    dup
    dup
    invokevirtual fr/x9c/cadmium/kernel/Block/setCustom(Ljava/lang/Object;)V
    astore 4
    aload 4
    dup
    dup
    bipush -3
    invokevirtual fr/x9c/cadmium/kernel/Block/setCode(I)V
    iconst_1
    getstatic fr.x9c.cadmium.kernel.Value.TWO Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    iconst_2
    aload_0
    ldc_w ocaml/compilers/Includecore
    ldc_w "fun_596"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/registerClosure(Ljava/lang/Class;Ljava/lang/String;)I
    invokestatic fr/x9c/cadmium/kernel/Value/createFromLong(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    aload 4
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_3
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_4
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_5
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    iconst_3
    iconst_3
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createClosureVars(II)Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/foldClosure3(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;)Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/returnClosure(Lfr/x9c/cadmium/kernel/Block;Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;)Lfr/x9c/cadmium/kernel/Value;
    aload_1
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Misc/for_all2_77(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    goto Label1

    Label0:
    iconst_0

    Label1:
    invokestatic fr/x9c/cadmium/kernel/Value/createFromLong(I)Lfr/x9c/cadmium/kernel/Value;

    Label3:
    areturn

    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method



.method public static fun_606(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 7
    .limit locals 5
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label0 to Label1
    .var 1 is arg1 Lfr/x9c/cadmium/kernel/Value; from Label0 to Label1
    .var 2 is arg2 Lfr/x9c/cadmium/kernel/Value; from Label0 to Label1
    .var 3 is arg3 Lfr/x9c/cadmium/kernel/Value; from Label0 to Label1

    
    Label0:
    aload_0
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_3
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    aload_1
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Ctype/equal_1792(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;

    Label1:
    areturn

    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method



.method public static fun_611(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 5
    .limit locals 8
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label5 to Label6
    .var 1 is arg1 Lfr/x9c/cadmium/kernel/Value; from Label5 to Label6
    .var 2 is arg2 Lfr/x9c/cadmium/kernel/Value; from Label5 to Label6
    .var 3 is arg3 Lfr/x9c/cadmium/kernel/Value; from Label5 to Label6
    .var 4 is arg4 Lfr/x9c/cadmium/kernel/Value; from Label5 to Label6

    
    Label5:
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 6

    Label15:
    aload_0
    aload_1
    aload 4
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_3
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_0
    ldc_w "Types"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getGlobal(Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_3
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/stdlib/Map/find_130(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    aload 6
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;

    Label16:
    goto Label0

    Label17:
    aload_0
    invokevirtual fr/x9c/cadmium/kernel/Fail$Exception/asValue(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;)Lfr/x9c/cadmium/kernel/Value;
    astore 7
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_0
    ldc_w "caml_exn_Not_found"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getGlobal(Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/equalValues(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Z
    ifeq Label1
    goto Label2

    Label0:
    aload_2
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    areturn

    Label2:
    aload 6
    goto Label0

    Label1:
    aload 7
    invokestatic fr/x9c/cadmium/kernel/Fail/raise(Lfr/x9c/cadmium/kernel/Value;)V
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;

    Label6:
    goto Label0

.catch fr/x9c/cadmium/kernel/Fail$Exception from Label15 to Label16 using Label17
    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method



.method public static fun_615(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 6
    .limit locals 8
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label5 to Label6
    .var 1 is arg1 Lfr/x9c/cadmium/kernel/Value; from Label5 to Label6
    .var 2 is arg2 Lfr/x9c/cadmium/kernel/Value; from Label5 to Label6
    .var 3 is arg3 Lfr/x9c/cadmium/kernel/Value; from Label5 to Label6
    .var 4 is arg4 Lfr/x9c/cadmium/kernel/Value; from Label5 to Label6

    
    Label5:
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 6

    Label15:
    aload_0
    aload_0
    aload_1
    aload 4
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_3
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_0
    ldc_w "Types"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getGlobal(Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_3
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/stdlib/Map/find_130(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    aload 6
    invokestatic ocaml/compilers/Includecore/encode_val_434(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;

    Label16:
    goto Label0

    Label17:
    aload_0
    invokevirtual fr/x9c/cadmium/kernel/Fail$Exception/asValue(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;)Lfr/x9c/cadmium/kernel/Value;
    astore 7
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_0
    ldc_w "caml_exn_Not_found"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getGlobal(Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/equalValues(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Z
    ifeq Label1
    goto Label2

    Label0:
    aload_0
    aload_2
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Includecore/encode_val_434(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    areturn

    Label2:
    aload 6
    goto Label0

    Label1:
    aload 7
    invokestatic fr/x9c/cadmium/kernel/Fail/raise(Lfr/x9c/cadmium/kernel/Value;)V
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;

    Label6:
    goto Label0

.catch fr/x9c/cadmium/kernel/Fail$Exception from Label15 to Label16 using Label17
    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method



.method public static value_descriptions_335(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 6
    .limit locals 10
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label37 to Label38
    .var 1 is arg1 Lfr/x9c/cadmium/kernel/Value; from Label37 to Label38
    .var 2 is arg2 Lfr/x9c/cadmium/kernel/Value; from Label37 to Label38
    .var 3 is arg3 Lfr/x9c/cadmium/kernel/Value; from Label37 to Label38

    
    Label37:
    aload_0
    aload_1
    getstatic fr.x9c.cadmium.kernel.Value.ONE Lfr/x9c/cadmium/kernel/Value;
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Ctype/moregeneral_1654(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label0
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 5
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 6
    goto Label1

    Label0:
    aload_0
    ldc_w "Includecore"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getGlobal(Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/kernel/Fail/raise(Lfr/x9c/cadmium/kernel/Value;)V
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;

    Label11:
    areturn

    Label1:
    aload 5
    astore 7
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label2
    goto Label3

    Label2:
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    invokevirtual fr/x9c/cadmium/kernel/Block/getTag()I
    tableswitch 0 3
            Label4
            Label5
            Label5
            Label5
            default: Label8

    Label5:
    goto Label3

    Label4:
    aload 5
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 8
    goto Label10

    Label8:
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;

    Label22:
    goto Label11

    Label10:
    aload 6
    astore 9
    aload 9
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label12
    goto Label13

    Label12:
    aload 9
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    invokevirtual fr/x9c/cadmium/kernel/Block/getTag()I
    tableswitch 0 3
            Label14
            Label15
            Label15
            Label15
            default: Label18

    Label15:
    goto Label13

    Label14:
    aload_0
    aload 8
    aload 6
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/primitives/stdlib/Compare/caml_equal(Lfr/x9c/cadmium/kernel/CodeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label20
    goto Label21

    Label18:
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;

    Label24:
    goto Label22

    Label21:
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    goto Label23

    Label20:
    aload_0
    ldc_w "Includecore"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getGlobal(Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/kernel/Fail/raise(Lfr/x9c/cadmium/kernel/Value;)V
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;

    Label23:
    goto Label24

    Label13:
    aload 8
    iconst_2
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    goto Label24

    Label3:
    aload 6
    astore 7
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label26
    goto Label27

    Label26:
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    invokevirtual fr/x9c/cadmium/kernel/Block/getTag()I
    tableswitch 0 3
            Label28
            Label29
            Label29
            Label29
            default: Label32

    Label29:
    goto Label27

    Label28:
    aload_0
    ldc_w "Includecore"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getGlobal(Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/kernel/Fail/raise(Lfr/x9c/cadmium/kernel/Value;)V
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;
    goto Label34

    Label32:
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;

    Label34:
    goto Label22

    Label27:
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;

    Label38:
    goto Label22

    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method



.method public static private_flags_343(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 2
    .limit locals 6
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label10 to Label8
    .var 1 is arg1 Lfr/x9c/cadmium/kernel/Value; from Label10 to Label8
    .var 2 is arg2 Lfr/x9c/cadmium/kernel/Value; from Label10 to Label8

    
    Label10:
    aload_1
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_3
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 4
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_3
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 5
    aload 4
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/notEqualValues(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Z
    ifeq Label0
    goto Label1

    Label0:
    aload 5
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/notEqualValues(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Z
    ifeq Label1
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/equalValues(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Z
    ifeq Label3
    goto Label4

    Label1:
    getstatic fr.x9c.cadmium.kernel.Value.ONE Lfr/x9c/cadmium/kernel/Value;

    Label7:
    areturn

    Label4:
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_4
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/equalValues(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Z
    ifne Label5
    goto Label6

    Label3:
    iconst_0

    Label9:
    invokestatic fr/x9c/cadmium/kernel/Value/createFromLong(I)Lfr/x9c/cadmium/kernel/Value;
    goto Label7

    Label6:
    aload_1
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/notEqualValues(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Z
    goto Label8

    Label5:
    iconst_1

    Label8:
    goto Label9

    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method



.method public static is_absrow_346(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 3
    .limit locals 9
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label38 to Label39
    .var 1 is arg1 Lfr/x9c/cadmium/kernel/Value; from Label38 to Label39
    .var 2 is arg2 Lfr/x9c/cadmium/kernel/Value; from Label38 to Label39

    
    Label38:
    aload_2
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 4
    aload 4
    astore 5
    aload 5
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label0
    goto Label1

    Label0:
    aload 5
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    invokevirtual fr/x9c/cadmium/kernel/Block/getTag()I
    tableswitch 0 8
            Label2
            Label2
            Label4
            Label2
            Label2
            Label2
            Label2
            Label2
            Label2
            default: Label11

    Label2:
    goto Label1

    Label4:
    aload 4
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    invokevirtual fr/x9c/cadmium/kernel/Block/getTag()I
    tableswitch 0 2
            Label13
            Label14
            Label14
            default: Label16

    Label11:
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;

    Label19:
    areturn

    Label14:
    goto Label1

    Label13:
    aload_0
    aload_1
    aload_2
    invokestatic ocaml/compilers/Ctype/expand_head_1000(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    astore 6
    aload 6
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 7
    goto Label18

    Label16:
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;

    Label34:
    goto Label19

    Label18:
    aload 7
    astore 8
    aload 8
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label20
    goto Label21

    Label20:
    aload 8
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    invokevirtual fr/x9c/cadmium/kernel/Block/getTag()I
    tableswitch 0 8
            Label22
            Label22
            Label22
            Label25
            Label22
            Label22
            Label22
            Label25
            Label22
            default: Label31

    Label22:
    goto Label21

    Label25:
    goto Label33

    Label31:
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;

    Label35:
    goto Label34

    Label33:
    getstatic fr.x9c.cadmium.kernel.Value.ONE Lfr/x9c/cadmium/kernel/Value;
    goto Label35

    Label21:
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    goto Label35

    Label1:
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;

    Label39:
    goto Label19

    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method



.method public static type_manifest_350(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 8
    .limit locals 20
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label126 to Label127
    .var 1 is arg1 Lfr/x9c/cadmium/kernel/Value; from Label126 to Label127
    .var 2 is arg2 Lfr/x9c/cadmium/kernel/Value; from Label126 to Label127
    .var 3 is arg3 Lfr/x9c/cadmium/kernel/Value; from Label126 to Label127
    .var 4 is arg4 Lfr/x9c/cadmium/kernel/Value; from Label126 to Label127
    .var 5 is arg5 Lfr/x9c/cadmium/kernel/Value; from Label126 to Label127
    .var 6 is arg6 Lfr/x9c/cadmium/kernel/Value; from Label126 to Label127

    
    Label126:
    aload_0
    aload_1
    aload_2
    invokestatic ocaml/compilers/Ctype/expand_head_1000(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    astore 8
    aload_0
    aload_1
    aload 4
    invokestatic ocaml/compilers/Ctype/expand_head_1000(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    astore 9
    aload 8
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 10
    aload 9
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 11
    aload 10
    astore 12
    aload 12
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label0
    goto Label1

    Label0:
    aload 12
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    invokevirtual fr/x9c/cadmium/kernel/Block/getTag()I
    tableswitch 0 8
            Label2
            Label2
            Label2
            Label5
            Label2
            Label2
            Label2
            Label9
            Label2
            default: Label11

    Label2:
    goto Label1

    Label9:
    aload 11
    astore 13
    aload 13
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label13
    goto Label14

    Label5:
    aload 11
    astore 13
    aload 13
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label15
    goto Label16

    Label11:
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;

    Label31:
    areturn

    Label16:
    goto Label1

    Label15:
    aload 13
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    invokevirtual fr/x9c/cadmium/kernel/Block/getTag()I
    tableswitch 0 8
            Label18
            Label18
            Label18
            Label21
            Label18
            Label18
            Label18
            Label18
            Label18
            default: Label27

    Label18:
    goto Label1

    Label21:
    aload 11
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 14
    aload_0
    aload_1
    aload_0
    aload 14
    invokestatic ocaml/compilers/Ctype/flatten_fields_341(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Includecore/is_absrow_346(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label1
    goto Label30

    Label27:
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;

    Label36:
    goto Label31

    Label30:
    aload_0
    aload 14
    invokestatic ocaml/compilers/Ctype/flatten_fields_341(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    astore 15
    aload_0
    aload_1
    getstatic fr.x9c.cadmium.kernel.Value.ONE Lfr/x9c/cadmium/kernel/Value;
    aload_2
    aload_3
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    aload 15
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload 5
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Ctype/equal_1792(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label32
    goto Label33

    Label1:
    bipush 7
    invokestatic fr/x9c/cadmium/kernel/Block/createClosure(I)Lfr/x9c/cadmium/kernel/Block;
    dup
    dup
    invokevirtual fr/x9c/cadmium/kernel/Block/setCustom(Ljava/lang/Object;)V
    astore 7
    aload 7
    dup
    aload_0
    ldc_w ocaml/compilers/Includecore
    ldc_w "check_super_392"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/registerClosure(Ljava/lang/Class;Ljava/lang/String;)I
    invokevirtual fr/x9c/cadmium/kernel/Block/setCode(I)V
    iconst_1
    getstatic fr.x9c.cadmium.kernel.Value.ONE Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    aload 7
    aload_1
    aload_3
    aload 4
    aload 5
    aload 6
    iconst_2
    iconst_5
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createClosureVars(II)Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/foldClosure4(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;)Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/foldClosure1(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;)Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/returnClosure(Lfr/x9c/cadmium/kernel/Block;Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;)Lfr/x9c/cadmium/kernel/Value;
    astore 12
    aload_0
    aload_2
    aload 12
    invokestatic ocaml/compilers/Includecore/check_super_392(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    goto Label31

    Label33:
    aload_0
    aload 10
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Ctype/flatten_fields_341(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    astore 16
    aload 16
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 17
    goto Label35

    Label32:
    iconst_0

    Label57:
    invokestatic fr/x9c/cadmium/kernel/Value/createFromLong(I)Lfr/x9c/cadmium/kernel/Value;
    goto Label36

    Label35:
    aload 17
    astore 18
    aload 18
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label37
    aload 18
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    tableswitch 0 2
            Label38
            Label38
            Label40
            default: Label41

    Label37:
    aload 18
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    invokevirtual fr/x9c/cadmium/kernel/Block/getTag()I
    tableswitch 0 8
            Label42
            Label42
            Label44
            Label42
            Label42
            Label42
            Label42
            Label42
            Label42
            default: Label51

    Label42:
    goto Label52

    Label44:
    goto Label53

    Label51:
    iconst_0

    Label60:
    ifeq Label54
    aload_0
    aload 16
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload 15
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Ctype/associate_fields_361(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    astore 17
    aload 17
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/equalValues(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Z
    ifeq Label55
    goto Label56

    Label54:
    iconst_0

    Label59:
    goto Label57

    Label56:
    aload_0
    aload_0
    aload_0
    ldc_w ocaml/compilers/Includecore
    ldc_w "fun_573"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/registerClosure1(Ljava/lang/Class;Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    aload 17
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/stdlib/List/map_90(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/stdlib/List/split_248(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    astore 18
    aload_0
    aload_1
    getstatic fr.x9c.cadmium.kernel.Value.ONE Lfr/x9c/cadmium/kernel/Value;
    aload_0
    aload_3
    aload 18
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/stdlib/Pervasives/@_167(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    aload_0
    aload 5
    aload 18
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/stdlib/Pervasives/@_167(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Ctype/equal_1792(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    goto Label58

    Label55:
    iconst_0

    Label58:
    goto Label59

    Label53:
    iconst_1
    goto Label60

    Label52:
    iconst_0
    goto Label60

    Label40:
    goto Label52

    Label38:
    goto Label53

    Label41:
    iconst_0
    goto Label60

    Label14:
    goto Label1

    Label13:
    aload 13
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    invokevirtual fr/x9c/cadmium/kernel/Block/getTag()I
    tableswitch 0 8
            Label66
            Label66
            Label66
            Label66
            Label66
            Label66
            Label66
            Label73
            Label66
            default: Label75

    Label66:
    goto Label1

    Label73:
    aload 11
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 14
    aload_0
    aload_1
    aload_0
    aload 14
    invokestatic ocaml/compilers/Btype/row_more_268(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Includecore/is_absrow_346(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label77
    goto Label78

    Label75:
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;

    Label84:
    goto Label31

    Label78:
    aload 10
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 15
    aload_0
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    aload 15
    invokestatic ocaml/compilers/Btype/row_repr_aux_253(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    astore 15
    aload_0
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    aload 14
    invokestatic ocaml/compilers/Btype/row_repr_aux_253(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    astore 16
    aload_0
    aload_1
    getstatic fr.x9c.cadmium.kernel.Value.ONE Lfr/x9c/cadmium/kernel/Value;
    aload_2
    aload_3
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    aload 16
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload 5
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Ctype/equal_1792(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label80
    goto Label81

    Label77:
    goto Label1

    Label81:
    aload 15
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 17
    aload 17
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 18
    goto Label83

    Label80:
    iconst_0

    Label105:
    invokestatic fr/x9c/cadmium/kernel/Value/createFromLong(I)Lfr/x9c/cadmium/kernel/Value;
    goto Label84

    Label83:
    aload 18
    astore 19
    aload 19
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label85
    aload 19
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    tableswitch 0 2
            Label86
            Label87
            Label87
            default: Label89

    Label85:
    aload 19
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    invokevirtual fr/x9c/cadmium/kernel/Block/getTag()I
    tableswitch 0 8
            Label90
            Label90
            Label92
            Label90
            Label90
            Label90
            Label90
            Label90
            Label90
            default: Label99

    Label90:
    goto Label100

    Label92:
    goto Label101

    Label99:
    iconst_0

    Label121:
    ifeq Label102
    aload_0
    aload 15
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload 16
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Ctype/merge_row_fields_460(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    astore 17
    aload 16
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_3
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label103
    goto Label104

    Label102:
    iconst_0

    Label113:
    goto Label105

    Label104:
    iconst_0
    goto Label106

    Label103:
    iconst_1

    Label106:
    ifne Label107
    aload 15
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_3
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label108
    goto Label109

    Label107:
    iconst_1

    Label120:
    ifeq Label110
    aload_0
    aload_0
    ldc_w ocaml/compilers/Includecore
    ldc_w "fun_576"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/registerClosure1(Ljava/lang/Class;Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    aload 17
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/stdlib/List/for_all_165(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label111
    goto Label112

    Label110:
    iconst_0

    Label116:
    goto Label113

    Label112:
    aload_0
    aload_3
    aload 5
    invokestatic ocaml/stdlib/List/combine_254(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    astore 18
    aload_0
    iconst_3
    invokestatic fr/x9c/cadmium/kernel/Block/createClosure(I)Lfr/x9c/cadmium/kernel/Block;
    dup
    dup
    invokevirtual fr/x9c/cadmium/kernel/Block/setCustom(Ljava/lang/Object;)V
    astore 7
    aload 7
    dup
    aload_0
    ldc_w ocaml/compilers/Includecore
    ldc_w "fun_579"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/registerClosure(Ljava/lang/Class;Ljava/lang/String;)I
    invokevirtual fr/x9c/cadmium/kernel/Block/setCode(I)V
    iconst_1
    getstatic fr.x9c.cadmium.kernel.Value.ONE Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    aload 7
    aload 18
    iconst_2
    iconst_1
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createClosureVars(II)Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/foldClosure1(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;)Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/returnClosure(Lfr/x9c/cadmium/kernel/Block;Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;)Lfr/x9c/cadmium/kernel/Value;
    aload 17
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/stdlib/List/for_all_165(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label114
    goto Label115

    Label111:
    iconst_0

    Label118:
    goto Label116

    Label115:
    aload_0
    aload 18
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/stdlib/List/split_248(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    astore 19
    aload_0
    aload_1
    getstatic fr.x9c.cadmium.kernel.Value.ONE Lfr/x9c/cadmium/kernel/Value;
    aload 19
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload 19
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Ctype/equal_1792(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    goto Label117

    Label114:
    iconst_0

    Label117:
    goto Label118

    Label109:
    aload_0
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    aload 17
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Ctype/filter_row_fields_465(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/equalValues(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Z
    goto Label119

    Label108:
    iconst_0

    Label119:
    goto Label120

    Label101:
    iconst_1
    goto Label121

    Label100:
    iconst_0
    goto Label121

    Label87:
    goto Label100

    Label86:
    goto Label101

    Label89:
    iconst_0

    Label127:
    goto Label121

    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method



.method public static type_declarations_394(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 8
    .limit locals 10
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label55 to Label53
    .var 1 is arg1 Lfr/x9c/cadmium/kernel/Value; from Label55 to Label53
    .var 2 is arg2 Lfr/x9c/cadmium/kernel/Value; from Label55 to Label53
    .var 3 is arg3 Lfr/x9c/cadmium/kernel/Value; from Label55 to Label53
    .var 4 is arg4 Lfr/x9c/cadmium/kernel/Value; from Label55 to Label53

    
    Label55:
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload 4
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/equalValues(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Z
    ifeq Label0
    aload_0
    aload_3
    aload 4
    invokestatic ocaml/compilers/Includecore/private_flags_343(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label1
    goto Label2

    Label0:
    iconst_0

    Label4:
    invokestatic fr/x9c/cadmium/kernel/Value/createFromLong(I)Lfr/x9c/cadmium/kernel/Value;
    areturn

    Label2:
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 6
    aload 4
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 7
    goto Label3

    Label1:
    iconst_0

    Label19:
    goto Label4

    Label3:
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label5
    iconst_1
    goto Label6

    Label5:
    aload 6
    astore 8
    aload 8
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label7
    goto Label8

    Label7:
    aload 8
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    invokevirtual fr/x9c/cadmium/kernel/Block/getTag()I
    tableswitch 0 1
            Label9
            Label10
            default: Label11

    Label10:
    aload 7
    astore 9
    aload 9
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label12
    goto Label13

    Label9:
    aload 7
    astore 9
    aload 9
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label14
    goto Label15

    Label11:
    iconst_0

    Label6:
    ifeq Label16
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_4
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 6
    aload 4
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_4
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 7
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label17
    goto Label18

    Label16:
    iconst_0

    Label25:
    goto Label19

    Label18:
    aload 6
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label20
    goto Label21

    Label17:
    aload_0
    aload_1
    getstatic fr.x9c.cadmium.kernel.Value.ONE Lfr/x9c/cadmium/kernel/Value;
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload 4
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Ctype/equal_1792(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I

    Label36:
    ifeq Label22
    aload 4
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 6
    aload 6
    invokevirtual fr/x9c/cadmium/kernel/Value/isLong()Z
    ifeq Label23
    goto Label24

    Label22:
    iconst_0

    Label30:
    goto Label25

    Label24:
    aload 4
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_4
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    astore 7
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label26
    goto Label27

    Label23:
    aload 4
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_3
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/equalValues(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Z

    Label32:
    ifeq Label28
    aload_0
    aload_0
    ldc_w ocaml/compilers/Includecore
    ldc_w "fun_603"
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/registerClosureN(Ljava/lang/Class;Ljava/lang/String;I)Lfr/x9c/cadmium/kernel/Value;
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_5
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload 4
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_5
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/stdlib/List/for_all2_173(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    goto Label29

    Label28:
    iconst_1

    Label29:
    goto Label30

    Label27:
    aload_0
    aload_0
    aload_1
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Ctype/expand_head_1000(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Btype/has_constr_row_289(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    goto Label31

    Label26:
    iconst_1

    Label31:
    goto Label32

    Label21:
    aload_0
    aload_1
    aload 6
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload 4
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload 4
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_3
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Includecore/type_manifest_350(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    goto Label33

    Label20:
    aload_2
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    aload 4
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    iconst_2
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    astore 8
    aload_0
    ldc_w 100000000
    invokestatic fr/x9c/cadmium/kernel/Value/createFromLong(I)Lfr/x9c/cadmium/kernel/Value;
    aload 8
    invokestatic ocaml/compilers/Btype/newty2_220(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    astore 8
    aload_0
    aload_1
    getstatic fr.x9c.cadmium.kernel.Value.ONE Lfr/x9c/cadmium/kernel/Value;
    aload_3
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload 4
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Ctype/equal_1792(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label34
    aload_0
    aload_1
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    aload 8
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Ctype/equal_1792(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    goto Label33

    Label34:
    iconst_0

    Label33:
    goto Label36

    Label15:
    goto Label8

    Label14:
    aload 9
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    invokevirtual fr/x9c/cadmium/kernel/Block/getTag()I
    tableswitch 0 1
            Label38
            Label39
            default: Label40

    Label39:
    goto Label8

    Label38:
    aload_0
    bipush 6
    invokestatic fr/x9c/cadmium/kernel/Block/createClosure(I)Lfr/x9c/cadmium/kernel/Block;
    dup
    dup
    invokevirtual fr/x9c/cadmium/kernel/Block/setCustom(Ljava/lang/Object;)V
    astore 5
    aload 5
    dup
    dup
    bipush -3
    invokevirtual fr/x9c/cadmium/kernel/Block/setCode(I)V
    iconst_1
    getstatic fr.x9c.cadmium.kernel.Value.TWO Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    iconst_2
    aload_0
    ldc_w ocaml/compilers/Includecore
    ldc_w "fun_590"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/registerClosure(Ljava/lang/Class;Ljava/lang/String;)I
    invokestatic fr/x9c/cadmium/kernel/Value/createFromLong(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    aload 5
    aload_1
    aload_3
    aload 4
    iconst_3
    iconst_3
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createClosureVars(II)Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/foldClosure3(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;)Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/returnClosure(Lfr/x9c/cadmium/kernel/Block;Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;)Lfr/x9c/cadmium/kernel/Value;
    aload 6
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Misc/for_all2_77(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    goto Label42

    Label40:
    iconst_0

    Label42:
    goto Label6

    Label8:
    iconst_0
    goto Label6

    Label13:
    goto Label8

    Label12:
    aload 9
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    invokevirtual fr/x9c/cadmium/kernel/Block/getTag()I
    tableswitch 0 1
            Label46
            Label47
            default: Label48

    Label47:
    aload_0
    aload 6
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/primitives/stdlib/Compare/caml_equal(Lfr/x9c/cadmium/kernel/CodeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    ifeq Label49
    goto Label50

    Label46:
    goto Label8

    Label48:
    iconst_0

    Label54:
    goto Label6

    Label50:
    aload_0
    bipush 6
    invokestatic fr/x9c/cadmium/kernel/Block/createClosure(I)Lfr/x9c/cadmium/kernel/Block;
    dup
    dup
    invokevirtual fr/x9c/cadmium/kernel/Block/setCustom(Ljava/lang/Object;)V
    astore 5
    aload 5
    dup
    dup
    bipush -3
    invokevirtual fr/x9c/cadmium/kernel/Block/setCode(I)V
    iconst_1
    getstatic fr.x9c.cadmium.kernel.Value.TWO Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    iconst_2
    aload_0
    ldc_w ocaml/compilers/Includecore
    ldc_w "fun_599"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/registerClosure(Ljava/lang/Class;Ljava/lang/String;)I
    invokestatic fr/x9c/cadmium/kernel/Value/createFromLong(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    aload 5
    aload_1
    aload_3
    aload 4
    iconst_3
    iconst_3
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createClosureVars(II)Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/foldClosure3(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;)Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/returnClosure(Lfr/x9c/cadmium/kernel/Block;Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;)Lfr/x9c/cadmium/kernel/Value;
    aload 6
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload 7
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Misc/for_all2_77(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asLong()I
    goto Label53

    Label49:
    iconst_0

    Label53:
    goto Label54

    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method



.method public static exception_declarations_428(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 6
    .limit locals 5
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label0 to Label1
    .var 1 is arg1 Lfr/x9c/cadmium/kernel/Value; from Label0 to Label1
    .var 2 is arg2 Lfr/x9c/cadmium/kernel/Value; from Label0 to Label1
    .var 3 is arg3 Lfr/x9c/cadmium/kernel/Value; from Label0 to Label1

    
    Label0:
    aload_0
    iconst_4
    invokestatic fr/x9c/cadmium/kernel/Block/createClosure(I)Lfr/x9c/cadmium/kernel/Block;
    dup
    dup
    invokevirtual fr/x9c/cadmium/kernel/Block/setCustom(Ljava/lang/Object;)V
    astore 4
    aload 4
    dup
    dup
    bipush -3
    invokevirtual fr/x9c/cadmium/kernel/Block/setCode(I)V
    iconst_1
    getstatic fr.x9c.cadmium.kernel.Value.TWO Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    iconst_2
    aload_0
    ldc_w ocaml/compilers/Includecore
    ldc_w "fun_606"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/registerClosure(Ljava/lang/Class;Ljava/lang/String;)I
    invokestatic fr/x9c/cadmium/kernel/Value/createFromLong(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    aload 4
    aload_1
    iconst_3
    iconst_1
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createClosureVars(II)Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/foldClosure1(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;)Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/returnClosure(Lfr/x9c/cadmium/kernel/Block;Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    aload_3
    invokestatic ocaml/compilers/Misc/for_all2_77(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;

    Label1:
    areturn

    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method



.method public static encode_val_434(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 4
    .limit locals 4
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label2 to Label3
    .var 1 is arg1 Lfr/x9c/cadmium/kernel/Value; from Label2 to Label3
    .var 2 is arg2 Lfr/x9c/cadmium/kernel/Value; from Label2 to Label3

    
    Label2:
    aload_1
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/notEqualValues(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Z
    ifeq Label0
    aload_0
    ldc_w "Predef"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getGlobal(Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_5
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    goto Label1

    Label0:
    aload_0
    ldc_w 100000000
    invokestatic fr/x9c/cadmium/kernel/Value/createFromLong(I)Lfr/x9c/cadmium/kernel/Value;
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/compilers/Btype/newty2_220(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;

    Label1:
    aload_1
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/Block/get(I)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;

    Label3:
    areturn

    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method



.method public static meths_438(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 6
    .limit locals 4
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label0 to Label1
    .var 1 is arg1 Lfr/x9c/cadmium/kernel/Value; from Label0 to Label1
    .var 2 is arg2 Lfr/x9c/cadmium/kernel/Value; from Label0 to Label1

    
    Label0:
    aload_0
    iconst_4
    invokestatic fr/x9c/cadmium/kernel/Block/createClosure(I)Lfr/x9c/cadmium/kernel/Block;
    dup
    dup
    invokevirtual fr/x9c/cadmium/kernel/Block/setCustom(Ljava/lang/Object;)V
    astore_3
    aload_3
    dup
    dup
    bipush -4
    invokevirtual fr/x9c/cadmium/kernel/Block/setCode(I)V
    iconst_1
    iconst_3
    invokestatic fr/x9c/cadmium/kernel/Value/createFromLong(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    iconst_2
    aload_0
    ldc_w ocaml/compilers/Includecore
    ldc_w "fun_611"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/registerClosure(Ljava/lang/Class;Ljava/lang/String;)I
    invokestatic fr/x9c/cadmium/kernel/Value/createFromLong(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    aload_3
    aload_1
    iconst_3
    iconst_1
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createClosureVars(II)Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/foldClosure1(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;)Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/returnClosure(Lfr/x9c/cadmium/kernel/Block;Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    aload_0
    ldc_w ocaml/compilers/Includecore
    iconst_0
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getConstant(Ljava/lang/Class;I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/stdlib/Map/fold_195(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;

    Label1:
    areturn

    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method



.method public static vars_445(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 6
    .limit locals 4
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label0 to Label1
    .var 1 is arg1 Lfr/x9c/cadmium/kernel/Value; from Label0 to Label1
    .var 2 is arg2 Lfr/x9c/cadmium/kernel/Value; from Label0 to Label1

    
    Label0:
    aload_0
    iconst_4
    invokestatic fr/x9c/cadmium/kernel/Block/createClosure(I)Lfr/x9c/cadmium/kernel/Block;
    dup
    dup
    invokevirtual fr/x9c/cadmium/kernel/Block/setCustom(Ljava/lang/Object;)V
    astore_3
    aload_3
    dup
    dup
    bipush -4
    invokevirtual fr/x9c/cadmium/kernel/Block/setCode(I)V
    iconst_1
    iconst_3
    invokestatic fr/x9c/cadmium/kernel/Value/createFromLong(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    iconst_2
    aload_0
    ldc_w ocaml/compilers/Includecore
    ldc_w "fun_615"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/registerClosure(Ljava/lang/Class;Ljava/lang/String;)I
    invokestatic fr/x9c/cadmium/kernel/Value/createFromLong(I)Lfr/x9c/cadmium/kernel/Value;
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    aload_3
    aload_1
    iconst_3
    iconst_1
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createClosureVars(II)Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/foldClosure1(Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;)Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/returnClosure(Lfr/x9c/cadmium/kernel/Block;Lfr/x9c/cadmium/kernel/AbstractNativeRunner$Closure;)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    aload_0
    ldc_w ocaml/compilers/Includecore
    iconst_1
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getConstant(Ljava/lang/Class;I)Lfr/x9c/cadmium/kernel/Value;
    invokestatic ocaml/stdlib/Map/fold_195(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;Lfr/x9c/cadmium/kernel/Value;)Lfr/x9c/cadmium/kernel/Value;

    Label1:
    areturn

    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method



.method public static entry(Lfr/x9c/cadmium/kernel/AbstractNativeRunner;)Lfr/x9c/cadmium/kernel/Value;
    .limit stack 4
    .limit locals 3
    .var 0 is arg0 Lfr/x9c/cadmium/kernel/AbstractNativeRunner; from Label0 to Label1

    
    Label0:
    aload_0
    ldc_w "Includecore"
    bipush 10
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/createGlobal(Ljava/lang/String;I)V
    aload_0
    ldc_w ocaml/compilers/Includecore
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getConstant(Ljava/lang/Class;I)Lfr/x9c/cadmium/kernel/Value;
    iconst_0
    invokestatic fr/x9c/cadmium/kernel/AbstractNativeRunner/createBlock(Lfr/x9c/cadmium/kernel/Value;I)Lfr/x9c/cadmium/kernel/Value;
    astore_2
    aload_0
    ldc_w "Includecore"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getGlobal(Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    swap
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    swap
    iconst_0
    swap
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;
    pop
    aload_0
    ldc_w ocaml/compilers/Includecore
    ldc_w "value_descriptions_335"
    iconst_3
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/registerClosureN(Ljava/lang/Class;Ljava/lang/String;I)Lfr/x9c/cadmium/kernel/Value;
    astore_2
    aload_0
    ldc_w "Includecore"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getGlobal(Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    swap
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    swap
    iconst_1
    swap
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;
    pop
    aload_0
    ldc_w ocaml/compilers/Includecore
    ldc_w "private_flags_343"
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/registerClosureN(Ljava/lang/Class;Ljava/lang/String;I)Lfr/x9c/cadmium/kernel/Value;
    astore_2
    aload_0
    ldc_w "Includecore"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getGlobal(Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    swap
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    swap
    iconst_4
    swap
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;
    pop
    aload_0
    ldc_w ocaml/compilers/Includecore
    ldc_w "is_absrow_346"
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/registerClosureN(Ljava/lang/Class;Ljava/lang/String;I)Lfr/x9c/cadmium/kernel/Value;
    astore_2
    aload_0
    ldc_w "Includecore"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getGlobal(Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    swap
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    swap
    iconst_5
    swap
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;
    pop
    aload_0
    ldc_w ocaml/compilers/Includecore
    ldc_w "type_manifest_350"
    bipush 6
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/registerClosureN(Ljava/lang/Class;Ljava/lang/String;I)Lfr/x9c/cadmium/kernel/Value;
    astore_2
    aload_0
    ldc_w "Includecore"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getGlobal(Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    swap
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    swap
    bipush 6
    swap
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;
    pop
    aload_0
    ldc_w ocaml/compilers/Includecore
    ldc_w "type_declarations_394"
    iconst_4
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/registerClosureN(Ljava/lang/Class;Ljava/lang/String;I)Lfr/x9c/cadmium/kernel/Value;
    astore_2
    aload_0
    ldc_w "Includecore"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getGlobal(Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    swap
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    swap
    iconst_2
    swap
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;
    pop
    aload_0
    ldc_w ocaml/compilers/Includecore
    ldc_w "exception_declarations_428"
    iconst_3
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/registerClosureN(Ljava/lang/Class;Ljava/lang/String;I)Lfr/x9c/cadmium/kernel/Value;
    astore_2
    aload_0
    ldc_w "Includecore"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getGlobal(Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    swap
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    swap
    iconst_3
    swap
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;
    pop
    aload_0
    ldc_w ocaml/compilers/Includecore
    ldc_w "encode_val_434"
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/registerClosureN(Ljava/lang/Class;Ljava/lang/String;I)Lfr/x9c/cadmium/kernel/Value;
    astore_2
    aload_0
    ldc_w "Includecore"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getGlobal(Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    swap
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    swap
    bipush 7
    swap
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;
    pop
    aload_0
    ldc_w ocaml/compilers/Includecore
    ldc_w "meths_438"
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/registerClosureN(Ljava/lang/Class;Ljava/lang/String;I)Lfr/x9c/cadmium/kernel/Value;
    astore_2
    aload_0
    ldc_w "Includecore"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getGlobal(Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    swap
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    swap
    bipush 8
    swap
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;
    pop
    aload_0
    ldc_w ocaml/compilers/Includecore
    ldc_w "vars_445"
    iconst_2
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/registerClosureN(Ljava/lang/Class;Ljava/lang/String;I)Lfr/x9c/cadmium/kernel/Value;
    astore_2
    aload_0
    ldc_w "Includecore"
    invokevirtual fr/x9c/cadmium/kernel/AbstractNativeRunner/getGlobal(Ljava/lang/String;)Lfr/x9c/cadmium/kernel/Value;
    aload_2
    swap
    invokevirtual fr/x9c/cadmium/kernel/Value/asBlock()Lfr/x9c/cadmium/kernel/Block;
    swap
    bipush 9
    swap
    invokevirtual fr/x9c/cadmium/kernel/Block/set(ILfr/x9c/cadmium/kernel/Value;)V
    getstatic fr.x9c.cadmium.kernel.Value.UNIT Lfr/x9c/cadmium/kernel/Value;
    pop
    getstatic fr.x9c.cadmium.kernel.Value.ZERO Lfr/x9c/cadmium/kernel/Value;

    Label1:
    areturn

    .throws fr/x9c/cadmium/kernel/Fail$Exception
    .throws fr/x9c/cadmium/kernel/Fatal$Exception
.end method
